package com.tudouji.project.bill.service;

import com.tudouji.framework.web.domain.AjaxResult;
import com.tudouji.project.bill.domain.Recharge;
import com.tudouji.project.system.domain.SysUser;

import java.util.List;

/**
 * 充值报表Service接口
 *
 * @author wf
 * @date 2021-04-15
 */
public interface IRechargeService
{
    /**
     * 查询充值报表
     *
     * @param guid 充值报表ID
     * @return 充值报表
     */
    public Recharge selectRechargeById(String guid);
    public Recharge selectRechargeByNewId(Long id);

    /**
     * 查询充值报表列表
     *
     * @param recharge 充值报表
     * @return 充值报表集合
     */
    public List<Recharge> selectRechargeList(Recharge recharge, String status, String functionType);

    /**
     * 新增充值报表
     *
     * @param recharge 充值报表
     * @return 结果
     */
    public int insertRecharge(Recharge recharge);

    /**
     * 修改充值报表
     *
     * @param recharge 充值报表
     * @return 结果
     */
    public int updateRecharge(Recharge recharge);

    /**
     * 批量删除充值报表
     *
     * @param guids 需要删除的充值报表ID
     * @return 结果
     */
    public int deleteRechargeByIds(String[] guids);

    /**
     * 删除充值报表信息
     *
     * @param guid 充值报表ID
     * @return 结果
     */
    public int deleteRechargeById(String guid);

    AjaxResult save(Recharge entity, Long deptId, String fileIds, Long taskid, String opinion);

    AjaxResult approval(Long id, Long taskid, String opinion, String fileIds);

    AjaxResult recharge(Long id, Long taskid, String opinion, String fileIds);

    AjaxResult refuse(Long id, String fileIds, String opinion, Long taskid, Long refuseNodeid, Long backUserid);

    AjaxResult del(Long id);

    void prepareRecharge(Recharge recharge, SysUser user);
}
